草庐IT

Ruby Regex 舍入尾随零

全部标签

ruby - 如何避免在拆分字符串时删除尾随的空项?

我在做:"b::::c:::".split(':')结果:["b","","","","c","",""]#expect["b","","","","c"]#actual这里有什么问题?我怎样才能得到我所期望的。 最佳答案 .split(pattern=$;,[limit])有一个limit参数。如果省略limit,则尾随的空字段将被抑制。您需要提供一个负的limit"b::::c:::".split(':',-1)但请记住,这将在数组末尾返回三个""值。result:["b","","","","c","","",""]

ruby - 在 Ruby 中舍入到最接近的整数或最接近的 .5

可能标题比较乱,我会尽量用例子来解释:给定一个精度为2的float,我希望能够四舍五入到它的闭整数,或者最接近的.5。示例:Given:4.12-->44.24-->44.25-->4.54.33-->4.54.53-->4.54.65-->4.54.75-->54.84-->5在Ruby中执行此操作的好方法是什么? 最佳答案 乘以2,四舍五入,除以2。[4.12,4.24,4.25,4.33,4.53,4.65,4.75,4.84].mapdo|x|r=(x*2).round/2.0r.to_i==r?r.to_i:rend=>[

ruby - 为什么 Ruby String#split 不将连续的尾随定界符视为单独的实体?

我正在读取一个政府文本文件,其中$用作分隔符,但我认为分隔符不重要...所以这是预期的:'a$b$c$d'.split('$')#=>["a","b","c","d"]在我正在处理的数据文件中,列标题行(第一行)被统一填充,即没有空标题,如:'a$b$$d'#or:'a$b$c$'但是,每行可能有连续的尾随分隔符,例如:"w$x$$\r\n"通常,我会阅读每一行并咀嚼。但这会导致String#split将最后两个定界符视为一列:"w$x$$\r\n".chomp.split('$')#=>["w","x"]不做chomp得到我想要的结果,虽然我应该chomp最后一个元素:"w$x$$\

ruby-on-rails - 从 ruby​​ 中的数组中删除尾随的 nil 值

我有一个像这样的数组:[["a",nil,nil,nil],["b",nil,"c",nil],[nil,nil,nil,nil]]我想从ruby​​中的数组中删除所有尾随的nil值。我试过arr.map{|x|x.popuntilx.last}但是这种方法的问题是,当数组的所有值都为nil时,就像给定数组中的第三个数组一样,循环会卡住。由于untilx.last条件,如果所有值都是nil那么map函数应该返回一个空数组吗?这应该是什么条件。输出应该是[['a'],['b','nil','c'],[]]请记住,我只想删除不在中间的尾随nil值。 最佳答案

ruby-on-rails - Ruby:如何从字符串中删除尾随反斜杠?

我有一个字符串"car\"我将把它存储在postgres数据库中。我想在保存之前从字符串中删除反斜杠。有没有办法在ruby​​或postgres中做到这一点?当我尝试在ruby​​中删除它时,它会将反斜杠后的引号视为转义字符。 最佳答案 见以下代码:1.9.3p125:022>s="cat\\"=>"cat\\"1.9.3p125:023>putsscat\=>nil1.9.3p125:024>s.chomp("\\")=>"cat"1.9.3p125:025> 关于ruby-on-ra

Ruby 由逗号分隔尾随空格

我需要将一个字符串分成两个变量。例如,以下内容可以正常工作:first,second="red,blue".split(',')我想拆分用户输入,逗号后可能有一个可选空格。我如何在逗号被吸收后写一个空格?我需要正确处理所有这些可能性:"red,blue"#first="red"second="blue""red,blue"#first="red"second="blue""red,darkblue"#first="red"second="darkblue""red,lightblue"#first="red"second="lightblue" 最佳答案

c - 奇怪的 "half to even"不同语言的舍入

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。GNUbash,版本4.2.24:$>printf"%.0f,%.0f\n"48.549.548,50ruby1.8.7>printf("%.0f,%.0f\n",48.5,49.5)48,50Perl5.12.4$>perl-e'printf("%.0f,%.0f\n",48.5,49.5)'48,50海湾合作委员会4.5.3:>printf("%.0

ruby-on-rails - 一种向下舍入 Floats 的方法

Floatround向上或向下舍入。我总是需要它向下舍入。我有解决方案,但我不太喜欢它...也许有更好的方法。这就是我想要的:1.9999.round_down(2)#=>1.991.9901.round_down(2)#=>1我想出了这个解决方案,但我想知道是否有更好的解决方案(我不喜欢我将float转换两次)。已经有这个方法了吗?因为我发现我找不到它很奇怪。classFloatdefround_down(n=0)((self*10**n).to_i).to_f/10**nendend谢谢。 最佳答案 1.9999.to_i#=>

ruby - 修剪尾随 .0

我有一个包含零件号的Excel列。这是一个示例如您所见,它可以是许多不同的数据类型:Float、Int和String。我正在使用roogem来读取文件。问题是roo将整数单元格解释为Float,向它们添加尾随零(16431=>16431.0)。我想修剪这个尾随零。我不能使用to_i因为它会修剪所有需要小数的单元格的尾随数字(上例中的第一行),并且会在中的字符串char之后剪切所有内容String行(上例中的最后一行)。目前,我有一种方法可以检查单元格的最后两个字符,如果它们是“.0”则将其修剪deftrim(row)ifrow[0].to_s[-2..-1]==".0"row[0]=r

ruby - 为什么我的 BigDecimal 对象初始化时出现意外舍入错误?

在Ruby2.2.0中,为什么:BigDecimal.new(34.13985572755337,9)等于34.0但是BigDecimal.new(34.13985572755338,9)等于34.1398557?请注意,我在64位机器上运行它。 最佳答案 用字符串而不是float初始化一般来说,您无法通过float获得可靠的行为。您错误地使用Float值而不是String值初始化BigDecimals,这在一开始就引入了一些不精确性。例如,在我的64位系统上:float1=34.13985572755337float2=34.13